#pragma once
#include <iostream>
#include <pthread.h>

// 资源获取即初始化
class LockGuard
{
private:
    pthread_mutex_t *_pmutex_;
public:
    LockGuard(pthread_mutex_t &mutex):_pmutex_(&mutex)
    {
        pthread_mutex_lock(_pmutex_);
    }
    ~LockGuard()
    {
        pthread_mutex_unlock(_pmutex_);
    }
};

// // namespace YX
// // {
//     class Mutex
//     {
//     private:
//         pthread_mutex_t *_pmutex_;
//     public:
//         Mutex(pthread_mutex_t *pmutex):_pmutex_(pmutex)
//         {}

//         void lock()
//         {
//             pthread_mutex_lock(_pmutex_);
//         }
//         void unlock()
//         {
//             pthread_mutex_unlock(_pmutex_);
//         }
//     };
//     // 资源获取即初始化
//     class LockGuard
//     {
//     private:
//         Mutex _mutex_;
//     public:
//         LockGuard(pthread_mutex_t &mutex):_mutex_(&mutex)
//         {
//             _mutex_.lock();
//         }
//         ~LockGuard()
//         {
//             _mutex_.unlock();
//         }
//     };
// // }
